var history_array;//记录历史纪录的数组
if(localStorage.getItem("history_array")!=null){//先看看本地缓存中有不有该数组 有的话直接得到该数组 而不用new一个新数组
	history_array=JSON.parse(localStorage.getItem("history_array"));
}else{
	history_array=new Array();
}
var result = $("#result");//结果显示框
var temp = '';//当前结果字符串
function calcut(var1) {
	switch(var1.id) {
		case 'result'://点击到显示款  直接跳出
			break;
		case 'clear'://清屏
			temp = '';
			result.text(temp);
			break;
		case 'back'://删除最后一个字符
			temp = temp.substring(0, temp.length - 1);
			result.text(temp);
			break;
		case '=':
			cal_final();
			break;
		case 'history'://M
			if($("#M_ad").attr("id") != "M_ad") {//判断是否已经生成过M+ 和M-按钮，避免重复生成
				var content = "<div class=\"col-md-6\" onclick=\"calcut(this)\" " + "id=\"M_rd\">清空记录</div>";
				content += "<div class=\"col-md-6\" onclick=\"calcut(this)\" " + "id=\"M_ad\">查看记录</div>";
				$("#div_1").append(content);
			}
			break;
		case 'M_ad'://查看历史纪录
			console.log(history_array);
			if(history_array.length== 0||history_array==null) {
				alert("历史纪录为空");
			} else {
				var content = "<div class=\"col-md-12\" id=\"history_ol\">";
				content += "<ol>";
				for(var i = 0; i < history_array.length; i++) {
					content += "<li>" + history_array[i].result;
					content += "<a onclick=\"delete_one(this)\">删除</a>";
					content += "</li>";
				}
				content += "</ol>";
				content += "</div>";
				$("#div_1").append(content);
			}
			break;
		case 'M_rd'://清楚全部历史纪录
			localStorage.removeItem("history_array");
			alert("清除成功");
			break;
		default://默认是直接将按钮的内容显示在屏幕上
			temp = temp + var1.innerHTML;
			result.text(temp);
			break;
	}
}
//计算表达式
function cal_final() {
	var arr_cal = temp.split(' ');
	var arr = new Array();
	var last, front;
	//从后到前 只运算乘除，每次乘除运算完毕pop到另外一个数组中
	for(var i = arr_cal.length - 1; i >= 0;) {
		if(i == 0) {
			arr.push(arr_cal[i--]);
			break;
		}
		switch(arr_cal[i - 1]) {
			case '+':
				arr.push(arr_cal[i--]);
				arr.push(arr_cal[i--]);
				break;
			case '-':
				arr.push(arr_cal[i--]);
				arr.push(arr_cal[i--]);
				break;
			case '*':
				last = parseFloat(arr_cal[i--]);
				front = parseFloat(arr_cal[--i]);
				arr_cal[i] = front * last;
				break;
			case '/':
				try {
					last = parseFloat(arr_cal[i--]);
					front = parseFloat(arr_cal[--i]);
					if(last == 0) throw "被除数不能为0";//除数为零抛出异常，在屏幕上提示相关信息
					arr_cal[i] = front / last;
				} catch(e) {
					result.text(e);
					return;
				}
				break;
		}
	}
	//颠倒顺序 从后到钱 将最后得到的只含加减的数组再次运算
	arr.reverse();
	for(var i = arr.length - 1; i >= 0;) {
		if(i == 0) {
			front = parseFloat(arr[0]);
			break;
		}
		last = parseFloat(arr[i--]);
		front = parseFloat(arr[--i]);
		if(arr[i + 1] == '+') {
			front += last;
		} else {
			front -= last;
		}
		arr[i] = front;
	}
	if(isNaN(front)) {
		result.text("输入不合法");//输入不正确计算得到的结果是NaN
	} else {
		var history_record = result.text() + " = " + front;//记录等式
		//创建对象放入数组
		var record=new Object();
		record.result=history_record;
		history_array.push(record);
		localStorage.setItem("history_array",JSON.stringify(history_array));
		result.text(front);//将结果显示
		temp = front;//方便在这次计算的结果上再次计算
	}
}
//删除单条历史纪录
function delete_one(var1) {
	 
}